<?php
/**
 * Zead
 *
 * LICENSE	
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.opensource.org/licenses/bsd-license.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to eu@marcelomx.com so we can send you a copy immediately.
 *
 * @category   Zead
 * @author     Marcelo Rodrigues Gonzaga <eu@marcelomx.com>
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga
 * @link       http://code.google.com/p/zead 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License
 *
 **/


/** @see Zend_Controller_Request_Http */
require_once 'Zend/Controller/Request/Http.php';

/**
 * @category   Zead
 * @package    Zead_Player
 * @copyright  Copyright (c) 2008 Marcelo Rodrigues Gonzaga 
 * @license    http://www.opensource.org/licenses/bsd-license.php     New BSD License 
 */
class Zead_Player_Request extends Zend_Controller_Request_Http 
{	
	/**
	 * Retorna o tipo de recurso a ser acessado. O recurso é o tipo
	 * de saída que será exibida (file resource). 
	 *
	 * @return string
	 */
	public function getAction() 
	{
		/** @see Zend_Filter **/
		require_once 'Zend/Filter.php';
		$actionName = Zend_Filter::get($this->getParam('action', 'default'), 'Word_UnderscoreToCamelCase');
		
		return $actionName;
	}
	
	/**
	 * Retorna o valor da variavel associada a identidade registrada
	 * na sessao para validacao. 
	 * 
	 * @return string
	 */
	public function getIdentity() 
	{
		return $this->getParam('id', ' ');
	}
	
	/**
	 * Retorna os parametros base HTTP para serem aplicados nas URLS
	 * @return array
	 */
	public function getBaseQuery()
	{
		return array('id' => $this->getIdentity());	
	}
	
	/**
	 * Verifica se o arquivo acessado atualmente é o arquivo tido
	 * como registrador de sessão. O arquivo não pode ser navegável.
	 *
	 * @return bool
	 */
	public function isAuth() 
	{
		return basename($this->getServer('PHP_SELF')) == 'log.php' ? true : false;
	}
	
	/**
	 * Atalho para retornar o nome do arquivo (script) físico $_SERVER['SCRIPT_FILENAME']
	 * 
	 * @return string
	 */
	public function getFileName()
	{
		return $_SERVER['SCRIPT_FILENAME'];	
	}
	
	/**
	 * Retorna o diretório base no sistema de arquivos para o 
	 * script sendo executado atualmente
	 * 
	 * @return string
	 */
	public function getBasePath()
	{
		return dirname($this->getFileName());
	}

	
	/**
	 * Retorna o caminho HTTP do script sendo executado atualmente.
	 * @return string
	 */
	public function getScriptName()
	{
		return $this->getServer('SCRIPT_NAME');
	}
	
	/**
	 * Retorna o diretorio HTTP do script sendo executado atualmente.
	 * @return string
	 */
	public function getScriptPath()
	{
		return dirname($this->getScriptName());
	}
}
